def call(project, branch, version){

    def d200ToolTemplate = [
        'label' : 'WINSERVER_VS2015',
        // 'gitUrl' : 'ssh://gerrit@192.168.30.243:29418/D200/D200Robot',
        'gitUrl' : 'ssh://git@192.168.9.61:10022/d200/D200Robot.git',
        'branch' : branch,
        'buildScript' : "%devenv% vision\\YD_Calibration\\YD_Calibration.sln /Build \"Release|Win32\"",
        'artifactDir' : 'vision\\YD_Calibration\\Release',
        'artifactName' : "YD_Calibration_${version}.zip",
        'artifactory' : "D200Robot/${project}",
        'cleanCmd' : "del YD_Calibration_${version}.zip"
    ]

    def z100InteractiveTerminal = [
        'label' : 'WINSERVER_VS2015',
        'gitUrl' : 'ssh://gerrit@192.168.30.243:29418/D200/D200Robot',
        'branch' : branch,
        'buildScript' : "copy D:\\work\\workspace\\Z100GUI.vcxproj.user Z100GUI && %devenv% Z100GUI.sln /Build \"Release|x64\"",
        'packageScript' : "winrar a -as -r z100_app_${version}.zip release",
        'srcPackageScript' : "winrar a -as -r z100_app_src_2.0_${version}.zip .",
        'artifactDir' : 'release',
        'artifactName' : "z100_*_${version}.zip",
        'artifactory' : "Z00Robot/${project}",
        'cleanCmd' : "del *.zip"
    ]

    def e100ToolDev = [
        'label' : 'MSBUILD',
        'gitUrl' : 'ssh://gerrit@192.168.30.243:29418/CustomizedE100VisionAlg.git',
        'branch' : branch,
        'buildScript' : "%msbuild% VisionApp\\build\\yd_vision.sln /t:Rebuild /p:Configuration=Release && copy /y VisionApp\\build\\Release\\visiondev.exe VisionApp\\build\\LabelerPackage\\bin && md VisionApp\\build\\LabelerPackage\\models && copy /y VisionApp\\build\\visiondev\\models\\* VisionApp\\build\\LabelerPackage\\models",
        'artifactDir' : 'VisionApp\\build\\LabelerPackage',
        'artifactName' : "Labeler_${version}.zip",
        'artifactory' : "E100Robot/${project}",
        'cleanCmd' : "del Labele_${version}.zip"
    ]

    def e200cbs = [
        'label' : 'MSBUILD',
//        'gitUrl' : 'ssh://gerrit@192.168.30.243:29418/E200CBS.git',
        'gitUrl' : 'ssh://git@192.168.9.61:10022/MassProductionProject/e-series/E200CBS.git',
        'branch' : branch,
        'buildScript' : "%msbuild% E200CBS.sln && ren bin CBS",
        'artifactDir' : 'CBS',
        'zipCmd' : "%zip% a E200CBS_${version}.zip CBS",
        'artifactName' : "E200CBS_${version}.zip",
        'artifactory' : "E100Robot/${project}",
        'cleanCmd' : ""
    ]//&& xcopy /y /s /e G:\\CBS-lib\\* bin

    def e200SEditor_Solution = [
        'label' : 'MSBUILD',
//        'gitUrl' : 'ssh://gerrit@192.168.30.243:29418/SEditor_Solution.git',
        'gitUrl' : 'ssh://git@192.168.9.61:10022/MassProductionProject/e-series/SEditor_Solution.git',
        'branch' : branch,
        'buildScript' : "%msbuild% SEditor_Solution.sln && ren bin StationBuild",
        'artifactDir' : 'StationBuild',
        'zipCmd' : "%zip% a StationBuild_${version}.zip StationBuild",
        'artifactName' : "StationBuild_${version}.zip",
        'artifactory' : "E100Robot/${project}",
        'cleanCmd' : ""
    ]
    def a200cbs = [
            'label' : 'MSBUILD',
            'gitUrl' : 'ssh://gerrit@192.168.30.243:29418/A200CBS',
            'branch' : branch,
            'buildScript' : "%msbuild% A200CBS.sln && ren bin CBS",
            'buildScript' : "%msbuild% A200CBS.sln && ren bin CBS",
            'artifactDir' : 'CBS',
            'zipCmd' : "%zip% a A200CBS_${version}.zip CBS",
            'artifactName' : "A200CBS_${version}.zip",
            'artifactory' : "A100Robot/${project}",
            'cleanCmd' : ""
    ]
    def buildTemplate = [
        'D200Calibration' : d200ToolTemplate,
        'Z100InteractiveTerminal' : z100InteractiveTerminal,
        'E100ToolDev' : e100ToolDev,
        'E200CBS' : e200cbs,
        'A200CBS' : a200cbs,
        'SEditor_Solution' : e200SEditor_Solution
    ]

    return buildTemplate.get(project)

}